#include <bits/stdc++.h>
using namespace std;
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
using ll = long long;

// void solve()
// {
//     ll n, m;
//     cin >> n >> m;
//     string s, c;
//     cin >> s >> c;
//     sort(c.begin(), c.end());

//     string ans = "";
//     ll i = 0, j = 0;
//     while (i < s.size() && j < c.size())
//     {
//         if (s[i] <= c[j])
//         {
//             ans += s[i];
//             i++;
//         }
//         else
//         {
//             ans += c[j];
//             j++;
//         }
//     }
//     while (i < s.size())
//     {
//         ans += s[i];
//         i++;
//     }
//     while (j < c.size())
//     {
//         ans += c[j];
//         j++;
//     }
//     cout << ans << endl;
// }

void solve()
{
    ll n, m;
    cin >> n >> m;
    string s, c;
    cin >> s >> c;
    sort(c.begin(), c.end());
    int i = 0, j = 0;
    string ans = "";
    while (i < s.size() && j < c.size())
    {
        if (s[i] > c[j])
        {
            ans += c[j++];
        }
        else
            ans += s[i++];
    }

    // while (i < s.size())
    // {
    //     ans += s[i];
    //     i++;
    // }
    // while (j < c.size())
    // {
    //     ans += c[j];
    //     j++;
    // }

    if (s.size() != i)
    {
        ans += s.substr(i, s.size() - i);
    }
    if (c.size() != j)
    {
        ans += c.substr(j, c.size() - j);
    }
    cout << ans;
}

int main()
{
    int t = 1;
    // cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}